package com.lmy.mallback.entity;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.lmy.mallback.util.CustomDateTimeSerializer;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @author 程序员小洋
 * @version 2022.3
 * @date 2023/1/11 11:39
 * @title 商品表
 */
@SuppressWarnings("all")
@Data
@TableName("t_product")
public class Product {

    /**
     * 编号
     */
    private Integer id;

    /**
     * 名称
     */
    private String name;

    /**
     * 价格
     */
    private BigDecimal price;

    /**
     * 数量
     */
    private Integer num;

    /**
     * 商品介绍图片
     */
    private String productIntroImgs;

    /**
     * 商品规格参数图片
     */
    private String productParaImgs;

    /**
     * 库存
     */
    private Integer stock;

    /**
     * 商品图片
     */
    private String proPic="default.jpg";

    /**
     * 是否热门推荐商品
     */
    private boolean isHot=false;

    /**
     * 是否轮播图片商品
     */
    private boolean isSwiper=false;

    /**
     * 轮播排序
     */
    private Integer swiperSort=0;

    /**
     * 商品轮播图片
     */
    private String swiperPic="default.jpg";

    /**
     * 描述
     */
    private String description;

    /**
     * 设置热门推荐日期时间
     */
    @JsonSerialize(using= CustomDateTimeSerializer.class)
    @TableField(updateStrategy  = FieldStrategy.IGNORED)
    private Date hotDateTime;

    @TableField(select = false)
    private List<ProductSwiperImage> productSwiperImageList;

    /**
     * 评论列表
     */
    @TableField(select = false)
    private List<Comment> commentList;

    @TableField(select = false)
    private SmallType type; // 商品类别
}
